package org.example.meetingsystem.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.example.meetingsystem.DTO.LoginDTO;
import org.example.meetingsystem.DTO.RegisterDTO;
import org.example.meetingsystem.DTO.UpdateUserDTO;
import org.example.meetingsystem.entity.User;
import org.example.meetingsystem.enums.UserRole;
import org.example.meetingsystem.enums.UserStatus;

import java.util.List;
import java.util.Map;

public interface UserService {

    Map<String, Object> login(LoginDTO loginDTO);

    void register(RegisterDTO registerDTO);

    User findByUsername(String username);

    void updateUserStatus(Long userId, UserStatus status);

    Page<User> getUserList(int pageNum, int pageSize, String username, UserRole role, UserStatus status);

    User getUserById(Long userId);

    void updateUser(Long userId, UpdateUserDTO updateUserDTO);

    void deleteUser(Long userId);

    List<User> getPendingUsers();

    Map<String, Object> getUserStatistics();
}